在添加主机的时候,可以看到四种方式。一种是Agent,一种是IPMI,一种是JMX(监控KVM的),还有一个就是SNMP。关于SNMP这种监控方式,即可以用在主机上,另外就是用在路由器和交换机以及网络打印机这种没有办法安装agent客户端的网络设备上。对于主机来说能用agent监控的尽量还是使用agent监控,这是一种最佳实践。
使用SNMP监控主机
这里以监控192.168.1.150为例子
1 2
| yum -y install net-snmp net-snmp-utils net-snmp-devel systemctl start snmpd
|
修改SNMP的配置文件
1
| vim /etc/snmp/snmpd.conf
|
1 2 3 4 5 6 7
| view systemview included .1.3.6.1.2.1.25.1.1 //找到这行,增加下面配置 view systemview included .1 // 这个是新增加的 proc mountd // 找到这些配置,把注释去掉 proc ntalkd 4 proc sendmail 10 1 disk / 10000 load 12 14 14
|
修改完以后重启snmp
然后通过snmpwalk来获取数据进行测试
比如查看系统负载
1 2 3 4 5 6 7 8
| [root@aliyun-test ~] UCD-SNMP-MIB::laLoad.1 = STRING: 0.02 [root@aliyun-test ~] UCD-SNMP-MIB::laLoad.2 = STRING: 0.04 [root@aliyun-test ~] UCD-SNMP-MIB::laLoad.3 = STRING: 0.05 [root@aliyun-test ~] 17:54:15 up 6 days, 8:47, 1 user, load average: 0.01, 0.04, 0.05
|
查看内存的使用情况
1 2 3 4
| [root@aliyun-test ~] UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 83980 kB [root@aliyun-test ~] UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 83980 kB
|
可以利用这些参数来监控到对应的想要的数据,更多的OID参考
配置监控实例
在添加主机的时候可以选择Template SNMP OS linux的模版,但是这个模版仅仅是提供了简单的几个监控项,这里可以自己添加监控项目。
然后到最新的数据里面查看zabbix是否获取到了snmp数据。monitor–>last data–>找到主机以及相应的item
其实可以发现这个是free的内存,但不是可用的内存。
这就是一个简单的监控实例
1 2
| yum -y install net-snmp net-snmp-utils net-snmp-devel systemctl start snmpd
|
自定义OID
上面添加的监控是使用定义好的OID进行值的获取,但是假如要监控的内容压根没有,那么怎么办?此时就需要自己自定义OID了。
首先要确定某一个UID是否被系统占用
1 2
| [root@aliyun-test ~] UCD-SNMP-MIB::ucdavis.5000 = No Such Object available on this agent at this OID
|
没有背占用,写一个查看httpd进程数的脚本
1 2 3 4 5 6
| [root@aliyun-test scripts] #!/bin/bash apache_number=$(/bin/ps aux | grep httpd | grep -v grep | wc -l) echo $apache_number [root@aliyun-test scripts] 11
|
然后修改snmp的配置文件
1 2 3
| [root@aliyun-test scripts] 加一行: extend .1.3.6.1.4.1.2021.5000 http_number /server/scripts/http_number.sh
|
重启snmp测试(最后一行是想要的数据)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| [root@aliyun-test scripts] UCD-SNMP-MIB::ucdavis.5000.1.0 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.5000.2.1.2.11.104.116.116.112.95.110.117.109.98.101.114 = STRING: "/server/scripts/http_number.sh" UCD-SNMP-MIB::ucdavis.5000.2.1.3.11.104.116.116.112.95.110.117.109.98.101.114 = "" UCD-SNMP-MIB::ucdavis.5000.2.1.4.11.104.116.116.112.95.110.117.109.98.101.114 = "" UCD-SNMP-MIB::ucdavis.5000.2.1.5.11.104.116.116.112.95.110.117.109.98.101.114 = INTEGER: 5 UCD-SNMP-MIB::ucdavis.5000.2.1.6.11.104.116.116.112.95.110.117.109.98.101.114 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.5000.2.1.7.11.104.116.116.112.95.110.117.109.98.101.114 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.5000.2.1.20.11.104.116.116.112.95.110.117.109.98.101.114 = INTEGER: 4 UCD-SNMP-MIB::ucdavis.5000.2.1.21.11.104.116.116.112.95.110.117.109.98.101.114 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.5000.3.1.1.11.104.116.116.112.95.110.117.109.98.101.114 = STRING: "11" UCD-SNMP-MIB::ucdavis.5000.3.1.2.11.104.116.116.112.95.110.117.109.98.101.114 = STRING: "11" UCD-SNMP-MIB::ucdavis.5000.3.1.3.11.104.116.116.112.95.110.117.109.98.101.114 = INTEGER: 1 UCD-SNMP-MIB::ucdavis.5000.3.1.4.11.104.116.116.112.95.110.117.109.98.101.114 = INTEGER: 0 UCD-SNMP-MIB::ucdavis.5000.4.1.2.11.104.116.116.112.95.110.117.109.98.101.114.1 = STRING: "11"
|
添加监控项查看